package cn.iocoder.yudao.module.system.service.merchant;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.investment.vo.InvestmentReqVO;
import cn.iocoder.yudao.module.system.controller.admin.investment.vo.ParticipationReqVO;
import cn.iocoder.yudao.module.system.controller.admin.merchant.vo.StoreProfileReqVO;
import cn.iocoder.yudao.module.system.controller.app.merchant.vo.AppFellowReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.merchant.FellowMerchantDO;
import cn.iocoder.yudao.module.system.dal.dataobject.merchant.MerchantDO;

import java.util.Collection;
import java.util.Set;

public interface MerchantService {

    CommonResult<MerchantDO> getStoreProfile(long id);

    void updateStoreprofile(StoreProfileReqVO reqVO);

    PageResult<MerchantDO> ParticipationGettingMerchantPage(InvestmentReqVO reqVO);

    PageResult<MerchantDO> InvestmentGettingMerchantPage(ParticipationReqVO reqVO);

    MerchantDO getMerchant(Long merchantId);

    MerchantDO getMerchantByUserId(Long userId);

    String getMerchantNameById(Long merchantId);

    void followMerchant(Long merchantId);

    void unFellow(Long merchantId);

    PageResult<FellowMerchantDO> getFellowPage(AppFellowReqVO pageReqVO);

    Collection<MerchantDO> getMerchantList(Set<Long> merchantIds);

    Integer CheckMerchantIsFollow(Long merchantId);
}
